package com.xoa.dev.pz.controller;

import com.xoa.dev.pz.model.PzPersonWithBLOBs;
import com.xoa.dev.pz.service.PzPersonService;
import com.xoa.util.ToJson;
import com.xoa.util.common.StringUtils;
import org.apache.poi.util.StringUtil;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Date;

/**
 * Created by gsb on 2017/11/29.
 */
@Controller
@RequestMapping("/pzPerson")
public class PzPersonController {

    @RequestMapping("/selectPerson")
    public String selectPerson(){
        return "app/common/selectPerson";
    }

    @RequestMapping("/personManage")
    public String houseRentManager(){
        return "app/pz/pzPerson/personManage";
    }

    @RequestMapping("/personInfo")
    public String houseInfo(){
        return "app/pz/pzPerson/personInfo";
    }

    @RequestMapping("/openning")
    public String openning(){
        return "app/pz/pzPerson/openning";
    }

    @Resource
    private PzPersonService pzPersonService;

    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月29日 下午15:08:00
     * 方法介绍:   添加人员基础信息
     * 参数说明:
     * 返回值说明:
     */
    @RequestMapping("/insertSelective")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> insertSelective(PzPersonWithBLOBs pzPersonWithBLOBs, HttpServletRequest request){

        return pzPersonService.insertSelective(pzPersonWithBLOBs,request);
    }
    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月29日 下午15:08:00
     * 方法介绍:   删除人员基础信息
     * 参数说明:
     * 返回值说明:
     */
    @RequestMapping("/deleteByPrimaryKey")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> deleteByPrimaryKey(Integer pId){
        return pzPersonService.deleteByPrimaryKey(pId);
    }

    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月29日 下午15:08:00
     * 方法介绍:   修改人员基础信息
     * 参数说明:
     * 返回值说明:
     */
    @RequestMapping("/updateByPrimaryKeySelective")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> updateByPrimaryKeySelective(PzPersonWithBLOBs record){
        return pzPersonService.updateByPrimaryKeySelective(record);
    }

    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月29日 下午15:08:00
     * 方法介绍:   人员基础信息详情
     * 参数说明:
     * 返回值说明:
     */
    @RequestMapping("/queryById")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> queryById(Integer pId, HttpServletRequest request){
        return pzPersonService.queryById(pId,request);
    }

    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月29日 下午15:08:00
     * 方法介绍:   人员基础信息列表及导出接口
     * 参数说明:
     * 返回值说明:
     */
    @RequestMapping("/queryPerson")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> queryPerson(HttpServletRequest request, HttpServletResponse response, PzPersonWithBLOBs pzPersonWithBLOBs,
                                                 Integer page, Integer pageSize, boolean useFlag, String export){
        return pzPersonService.queryPerson(request,response,pzPersonWithBLOBs, page, pageSize, useFlag,export);
    }

    /**
     * 创建作者:  张丽军
     * 创建日期:   2017年12月7日 下午11:48
     * 方法介绍:   人员管理导入功能接口
     * @param file
     * @param response
     * @param request
     * @param session
     * @return
     */
    @RequestMapping("/importPerson")
    @ResponseBody
    public ToJson importPerson(MultipartFile file, HttpServletResponse response, HttpServletRequest request, HttpSession session){
        return pzPersonService.importPerson(file,response,request,session);
    }

    @RequestMapping("/queryPersonAlaways")
    @ResponseBody
    public ToJson<PzPersonWithBLOBs> queryPersonAlaways(HttpServletRequest request, HttpServletResponse response, PzPersonWithBLOBs pzPersonWithBLOBs,
                                                        Integer page, Integer pageSize, boolean useFlag, String export){
        return pzPersonService.queryPersonAlaways(request,response,pzPersonWithBLOBs, page, pageSize, useFlag,export);
    }


    @RequestMapping("/importPersonAlaways")
    @ResponseBody
    public ToJson importPersonAlaways(MultipartFile file, HttpServletResponse response, HttpServletRequest request, HttpSession session){
        return pzPersonService.importPersonAlaways(file,response,request,session);
    }

    @RequestMapping("/addPersons")
    @ResponseBody
    public ToJson addPersons(PzPersonWithBLOBs pzPersonWithBLOBs, HttpServletRequest request){
        return pzPersonService.addPersons(pzPersonWithBLOBs,request);
    }
    @RequestMapping("/selectAll")
    @ResponseBody
    public ToJson selectAll(){
        return pzPersonService.selectAll();
    }


    }
